package biblioes;

/**
 * Clase que se encarga de la del manejo de un archivo de puntajes una vez leido.
 * Reliza tareas como recibir un archivo y datos para agregarle y poder obtener
 * en base a ellos un nuevo archivo con la informacion acomodada.
 */

public class FormatoPuntaje {
	String[] posicion;
	String[] puntos;
	String[] nombres;
	String[] desordenado;
	
	/**
	 * Constructor de la clase
	 * 
	 * @param desordenado es el array de strings con las lineas de puntajes
	 * levantadas del archivo correspondiente.
	 */
	
	public FormatoPuntaje(String[] desordenado) {
		this.desordenado = desordenado;
		this.posicion = new String[10];
		this.puntos = new String[10];
		this.nombres = new String[10];
	}
	
	/**
	 * Se encarga de agregar en el lugar que corresponde la linea nueva de puntaje, 
	 * quitando si fuera necesario el ultimo de la lista.
	 * 
	 * @param nombre nombre del jugador a agregar.
	 * @param puntaje puntos del jugador.
	 * @return String[] array de strings con las lineas a escribir en orden.
	 */
	
	public String[] agregaOrdenado(String nombre, String puntaje) {
		String[] ordenado = new String[11];

		int indice = 1;
		while(indice < 11 && desordenado[indice] != null) {
			if(Integer.valueOf(puntaje) > Integer.valueOf(desordenado[indice].split(" ")[2])) {
				break;
			}
			indice++;
		}
		
		for(int i = 0; i < indice; i++) {
			ordenado[i] = desordenado[i];
		}
		ordenado[indice] = indice + "." + " " + nombre + " " + puntaje;
		
		for(int i = indice + 1; i < 11 && desordenado[i-1] != null; i++) {
			String[] parse = desordenado[i-1].split(" ");
			ordenado[i] = i + "." + " " + parse[1] + " " + parse[2];
		}

		return ordenado;
	}
			
}
